Systems and methods for implementing machine vision and optical recognition

ABSTRACT

Embodiments disclosed herein may include a system including a server configured to receive from the mobile device the digital image capturing the object, execute an object recognition protocol to identify one or more image features of the digital image, determine an identification of the object based upon the one or more features of the digital image identified by the executed object recognition protocol, generate an object profile of the object based upon one or more data records of the object stored in the system databases where each respective record containing at least one data point corresponding to a valuation of the respective object, determine a value of the data point based upon the valuation of the respective object and a characteristic of a member, and transmit to the mobile device the object profile for the object captured in the digital image.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of a U.S. patent application Ser. No.15/132,108, filed on Apr. 18, 2016, which is hereby incorporated byreference in its entirety.

TECHNICAL FIELD

This application generally relates to systems and methods forimplementing machine vision and optical recognition for calculating andassessing value of a product.

BACKGROUND

As more users begin to take advantage of businesses that use theinternet to describe, market, sell, and deliver products and services,the performance of web sites becomes an issue of greater importance.Depending on the type of product or service that is the subject of theweb-based commerce, the challenges to providing rapid or even real-timeresponses to consumers can be great. For example, in providing insuranceproduct information via the web, a web site should efficiently gatherconsumer information and process that information to provide insuranceproduct rate quotes.

Conventional processes for calculating an insurance rate for a productcan be complicated and may require mathematical expressions that dependon detailed product information, consumer information, rating factorsfrom look-up tables, and other relevant information. These processesbecome even more complicated when calculating rates for a variety ofdifferent products, e.g., automobiles, houses, watches, guns, etc., atthe same time.

Mathematical expressions and data are typically encoded into theprogramming for an insurance product application that gathersinformation from a consumer and returns rate quote information andperhaps other types of information to the consumer. However, in order toefficiently and accurately calculate insurance product rates, theinsurance product application may not obtain all of the productinformation from the users. Product information from the users may leadto an incorrect valuation of the product and subsequently to an improperinsurance policy being offered for that product. Also, the process ofmodifying an insurance policy using the insurance product applicationcan become cumbersome and inefficient when it is later determined that aproduct conduction has changed or does not match the conditionoriginally stated by the user.

Accordingly, what is needed is a product value calculation system thatis scalable and allows for efficient and accurate calculation of productrates so that they can be returned to a consumer requesting such a ratein a short amount of time or even in real-time.

SUMMARY

Disclosed herein are systems and methods intended to address theshortcomings in the art and may provide additional or alternativeadvantages as well. Embodiments disclosed herein may include systems andmethods for implementing machine vision and optical recognition forcalculating and assessing value of a product.

In one embodiment, a computer-implemented method comprises receiving, bya server, from a mobile device a digital image capturing an object;executing, by the server, instructions to identify one or more imagefeatures of the digital image; determining, by the server, anidentification of the object based upon the one or more features of thedigital image; generating, by the server, an object profile of theobject based upon one or more data records of the object stored in oneor more system databases comprising non-transitory machine-readablemedia configured to store one or more records of one or more objects,each respective record containing at least one data point correspondingto a valuation of the respective object, wherein the object profilestores member identifier data associated with a user of the mobiledevice; determining, by the server, a value of the data point based uponthe valuation of the respective object and a characteristic of a memberidentifier data; and transmitting, by the server, to the mobile devicethe object profile for the object captured in the digital image.

In another embodiment, a system comprises one or more system databasescomprising non-transitory machine-readable media configured to store oneor more records of one or more objects, and a mobile device configuredto capture a digital image of an object. The system further comprises aserver configured to receive from the mobile device the digital imagecapturing the object. The server is further configured to execute anobject recognition protocol to identify one or more image features ofthe digital image. The server is further configured to determine anidentification of the object based upon the one or more features of thedigital image identified by the executed object recognition protocol.The server is further configured to generate an object profile of theobject based upon one or more data records of the object stored in thesystem databases where each respective record containing at least onedata point corresponding to a valuation of the respective object. Theserver is further configured to determine a value of the data pointbased upon the valuation of the respective object and a characteristicof a member. The server is further configured to transmit to the mobiledevice the object profile for the object captured in the digital image.

In yet another embodiment, a computer program product includes acomputer-usable data carrier storing a computer-readable program codeembodied therein for implementing machine vision and optical recognitionfor calculating and assessing value of a product. The computer-readableprogram code includes a program instruction means for receiving, by aserver, from a mobile device a digital image capturing an object. Thecomputer-readable program code includes a program instruction means forexecuting, by the server, instructions to identify one or more imagefeatures of the digital image. The computer-readable program codeincludes a program instruction means for determining, by the server, anidentification of the object based upon the one or more features of thedigital image. The computer-readable program code includes a programinstruction means for generating, by the server, an object profile ofthe object based upon one or more data records of the object stored inone or more system databases comprising non-transitory machine-readablemedia configured to store one or more records of one or more objects,each respective record containing at least one data point correspondingto a valuation of the respective object, wherein the object profilestores member identifier data associated with a user of the mobiledevice. The computer-readable program code includes a programinstruction means for determining, by the server, a value of the datapoint based upon the valuation of the respective object and acharacteristic of a member identifier data. The computer-readableprogram code includes a program instruction means for transmitting, bythe server, to the mobile device the object profile for the objectcaptured in the digital image.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings constitute a part of this specification andillustrate embodiments of the invention. The present disclosure can bebetter understood by referring to the following figures. The componentsin the figures are not necessarily to scale, emphasis instead beingplaced upon illustrating the principles of the disclosure.

FIG. 1 shows components of an exemplary system for implementing machinevision and optical recognition for calculating and assessing value of aproduct, according to an exemplary embodiment.

FIG. 2 shows a flow diagram of an image-based object recognition in anexemplary method for implementing machine vision and optical recognitionfor calculating and assessing value of a product, according to anexemplary embodiment.

FIG. 3 shows a mobile device executing the one or more software modulesdescribed herein, where a user of the mobile device captured an image ofa watch, according to an exemplary embodiment.

FIG. 4 shows a mobile device executing the one or more software modulesdescribed herein, where a user captured an image of a diamond ring,according to an exemplary embodiment.

FIG. 5 shows a mobile device executing the one or more software modulesdescribed herein, where a user of the mobile device captured an image ofa car, according to an exemplary embodiment.

DETAILED DESCRIPTION

The present disclosure is here described in detail with reference toembodiments illustrated in the drawings, which form a part here. Otherembodiments may be used and/or other changes may be made withoutdeparting from the spirit or scope of the present disclosure. Theillustrative embodiments described in the detailed description are notmeant to be limiting of the subject matter presented here. Alterationsand further modifications of the inventive features illustrated here,and additional applications of the principles of the inventions asillustrated here, which would occur to one skilled in the relevant artand having possession of this disclosure, are to be considered withinthe scope of the invention.

The systems and methods for implementing machine vision and opticalrecognition for calculating and assessing value of a product is providedwhere an image capture device of a mobile device captures images orvideo sequences of one or more products that are to be insured. Thecaptured images of the products are pre-processed on the mobile deviceor may be transmitted to another device for pre-processing. Thepre-processed image data obtained from pre-processing the capturedimages can be transmitted and transferred through a data network toservers, which then process the pre-processed image data using thealgorithms and extract information from the processed image data forvarious applications, such as determining one or more products withinthe processed image data. The servers can be specially-programmed toprocess and analyze the captured images and extract symbolicinformation, such as digits, letters, text, logos, symbols or icons. Theservers can be specially-programmed to facilitate the identification ofthe one or more products based on the information gathered from thecaptured image and the information available in internal and externaldatabases. The servers are further configured to calculate the value andinsurance policy plans of the one or more products recognized within theprocessed image data. The servers may then send informationcorresponding to value and insurance policy plans of the one or moreproducts back through the network to the mobile device or to otherdevices, such as an administrative computer or a personal computer.

The servers may also be specially-programmed to offer various insuranceservices to a user of an image capture device or a mobile devicecomprising an image capture device or sub-component; an image capturedevice may include a video camera, still-image camera, a wearable device(e.g., Google Glass®), and/or other devices having a video orstill-image capture component. The insurance services may be based ondata gathered from images and/or video captured by the image capturedevice and the data available in internal and external databases. In oneexample, the user may want to research a coverage offered to insure realproperty and/or personal property, including one or more products,against damage. The user using the mobile device may perform aninspection of a room within a house, where the mobile device capturesimages and/or video of the products within the room. The user maytransmit the captured images and/or video to a server where the serverrecognizes the products within the images and/or video by executing oneor more object recognition techniques. The server, after recognition ofthe objects, may determine a value and insurance plan for each objectrecognized and transmit the determined data (e.g., value, existingand/or offered insurance plan corresponding to each object) to themobile device. The user may be provided with an option to purchase aninsurance plan for the respective objects.

In another example, some of the objects recognized within the imagesand/or video may already be insured, and in such a scenario, the servermay provide an updated value and updated insurance policy planscorresponding to the previously insured objects. The server may comparedata stored in the database of the previously insured objects with newdata points determined corresponding to the objects in order tocalculate the updated value and update insurance plans for thepreviously insured objects captured by the user. The systems and methodsdescribed herein are used for implementing machine vision and opticalrecognition for calculating and assessing value of the product capturedby the user using an image capture device, such as a camera on a mobiledevice, and further allow the user to purchase an insurance policyonline for the product on the mobile device. The systems describedherein may be combined with augmented reality to file claims for theinsured products. With the help of advanced augmented reality technologyby adding computer vision and object recognition, the information aboutthe surrounding real world of the user becomes digitally interactive,and the information about the environment and the product can beoverlaid on the real world. The augmented reality software may displayboth passive and active (i.e., real-time) data. The data may bedisplayed over each specific product, as indicated by the userinteracting with the augmented reality device (e.g., goggles), or with auser interface on a handheld device. For example, when a claim fordamage to an insured vehicle is filed, the system implementing machinevision and optical recognition combined with the augmented realityoverlays will identify damaged vehicle parts for vehicle repairmechanics The augmented reality view of the system will enable mechanicswith general vehicle system knowledge to perform operations on thevehicle and to overlay step-by-step instructions for installing hardwaresuch as new parts, itemizing damaged parts for computing repair cost,and for ordering new parts to replace the damaged parts. This will helpcapture data that may be transmitted to computing devices and systemsassociated with insurance investigators, claims handlers, and adjusters,which may be configured to conduct various assessments and/or valuationsassociated with the claim.

FIG. 1 shows components of an exemplary system 100 for implementingmachine vision and optical recognition for calculating and assessingvalue of a product, according to an exemplary embodiment. The system 100include one or more system databases 101, such as member profiledatabase and image recognition database, a server 104, a network 106, anadministrator computer 108, and an image capture device 112 configuredto capture images of one or more products 110. The system 100 mayinclude additional, fewer, or different components. For example, thesystem 100 may include additional storage devices, additional servers,additional computing devices, and other features not shown in the FIG.1.

Devices of the system 100, such as the server 104 and the administratorcomputer 108, can communicate with each other and with other componentsof the system 100 over one or more networks 106. The networks 106 maycomprise any number of electronic devices and use any number ofcommunication protocols to facilitate data communications within thenetwork 106. One having skill in the art would appreciate that thenetwork 106 may include a variety of internal and/or external networks106 of various types implementing various data communicationstechnologies. The communication over the network may be performed inaccordance with various communication protocols such as TransmissionControl Protocol and Internet Protocol (TCP/IP), User Datagram Protocol(UDP), and IEEE communication protocols. The networks 106 can include awireless (e.g., Wi-Fi, Bluetooth®) or wired data network, a cellularnetwork, a telecommunications network, an enterprise network, anapplication-specific public network, a Local Area Network (LAN), a WideArea Network (WAN), WLAN, MAN, a private network, a public network suchas the Internet, an ad-hoc network, a network that includes a satellitelink, or another type of data communication network. The network 106 mayinclude a physical and/or logical architecture defined by firewalls,proxy servers, routers, switches, or similar features that implementvarious levels of security and my function as logical gateways orboundaries.

The server 104 is capable of communicating with the administrativecomputer 108 and the image capture device 112 through the network 106using wired or wireless communication capabilities. The server 104 andthe administrator computer 108 may be computing devices comprising anynumber of components, such as a Network Interface Card (NIC), allowingthe respective devices to receive, transmit, process, and storeinformation obtained from the image capture device 112. Although FIG. 1shows only the server 104 and the administrator computer 108, the system100 may include any number of computing devices. The system 100 mayinclude groups or subgroups of computing devices that can communicatewith each other, but not necessarily with the computing devices in othergroups or subgroups. The system 100 may include computing devices ofdisparate types, having different types of hardware and softwareconfigurations and in a variety of different locations. In some cases,multiple devices or subsystems can be identified together as a singlecomputing device.

The server 104 and the administrator computer 108 may include one ormore processors, non-transitory machine-readable storage media, and adata communication interface (e.g., NIC card). The server 104 and theadministrator computer 108 may include user interface devices, forexample, a monitor, touchscreen, mouse, or keyboard. The memory of theserver 104 and the administrator computer 108 may store instructions(e.g., computer code) associated with computer applications, computerprograms and software modules, and other resources.

The server 104 and the administrator computer 108 can be implemented ascomputing devices or mobile devices, such as smart phones, personaldigital assistants (PDAs), portable media players, watches, glasses,laptops, notebooks, tablets, and others. The server 104 and theadministrator computer 108 can include work stations, mainframes,non-portable computing systems, devices installed in structures,vehicles, and other types of installations. The server 104 and theadministrator computer 108 can include embedded communication devices.

The server 104 may further include or be associated with aspecially-programmed processing unit comprising a processor (ormicroprocessor). The processor may control, manage, and otherwise governthe various processes, functions, and components of the system 100. Theprocessing unit may include a single processor or a plurality ofprocessors for configuring the system as a multi-processor system. Theprocessor includes suitable logic, circuitry, and interfaces that areoperable to execute one or more instructions to perform predeterminedoperations.

The processor may comprise components of any number of processortechnologies known in the art. The examples of the processor mayinclude, but are not limited to, an x86 processor, an ARM processor, aReduced Instruction Set Computing (RISC) processor, anApplication-Specific Integrated Circuit (ASIC) processor, or a ComplexInstruction Set Computing (CISC) processor. The processor may alsoinclude a Graphics Processing Unit (GPU) that executes the set ofinstructions to perform one or more processing operations. The one ormore processors of the processing unit may be configured to process andcommunicate various types of data (e.g., image data obtained from videocameras of the image capture device such as mobile phones). Additionallyor alternatively, the processor of the processing unit may manageexecution of various processes and functions of the system, and maymanage the components of the system 100. In one example, the processormay process the image data captured by the video camera, to identify oneor more objects within the image data.

The server 104 may include a memory that is a non-volatile storagedevice for storing data and instructions, to be used by the processingunit of the server 104. The memory is implemented with a magnetic diskdrive, an optical disk drive, a solid state device, or an attachment toa network storage. The memory may include one or more memory devices tofacilitate storage and manipulation of program code, set ofinstructions, tasks, and pre-stored data. Non-limiting examples of thememory implementations may include, but are not limited to, a randomaccess memory (RAM), a read only memory (ROM), a hard disk drive (HDD),a secure digital (SD) card, a magneto-resistive read/write memory, anoptical read/write memory, a cache memory, or a magnetic read/writememory. Further, the memory includes one or more instructions that areexecutable by the processor of the processing unit to perform specificoperations. The support circuits for the processor include conventionalcache, power supplies, clock circuits, data registers, I/O interfaces,and the like. The I/O interface may be directly coupled to the memoryunit or coupled through the processor of the processing unit.

The administrative computer 108 of the system 110 may be anynetwork-connectable computing device configured for displaying a userinterface. The computing device can be a computer with a processor andany other electronic component that performs one or more operationsaccording to one or more programming instructions. Examples of thecomputing device include, but are not limited to, a desktop computer, alaptop, a personal digital assistant (PDA), a tablet computer, mobilephone, smart phone, or the like. The administrative computer 108 iscapable of communicating with the server 104 and the image capturedevice 112 through the network 106 using wired or wireless communicationcapabilities. The administrative computer 108 may also include an inputunit such as a keyboard, mouse, pointer, or other input generatingdevice to facilitate input of control instructions by the user to aprocessing unit of the administrative computer 108. The input unit ofthe administrative computer 108 may provide a portion of the userinterface and include an alphanumeric keypad for inputting alphanumericand other key information along with a cursor control device such as amouse, a trackpad, or stylus. A display unit of the administrativecomputer 108 may include a cathode ray tube (CRT) display, liquidcrystal display (LCD), plasma, or light emitting diode (LED) display. Agraphics subsystem of the administrative computer 108 may receivetextual and graphical information, and processes the information foroutput to the display unit.

The system databases 101 is a content library that stores data relatedto one or more users. The data of the user's may include name, personaldetails of the users, professional details of the users, current andpast policy of the users, credit limit of users, among other details.The system databases 101 also stores image data in which objects may berecognized such as videos, still images, or both. For example, thesystem databases 101 could include a repository of user-submittedvideos, such as that of Google Video or YouTube, and could also includestill images, such as those indexed by Google Image Search. The imagesmay also be obtained from online commercial image databases,photo-sharing websites, or the like. In one embodiment, each image hasassociated metadata, such as keywords, tags, or a textual description ofthe image. In some embodiments, the system databases 101 may storepre-stored image patterns and executable files associated with one ormore computer vision applications (e.g., OpenCV). In such embodiments, auser device, such as a laptop, a tablet, a smartphone, or a wearabledevice, may execute a computer vision application that may identify theobjects captured in the camera.

The image capture device 112 is a unit configured to capturing images ofthe one or more objects 110, storing images of the one or more objects110 and/or sending the images of the one or more objects 110 forprocessing. The image capture device 112 is further capable of capturingsingle or multiple images or video streams of the one or more objects110 and converting the single or multiple images or video streams of theone or more objects 110 to digital information. The image capture device112 is equipped with the optical and electro-optical imaging components.Examples of the image capture device 112 may include a digital camera, aPDA with an internal or external camera, a cell phone with an internalor external camera, a portable computational device (e.g., laptop,palmtop or web pad-like device with an internal or external camera), asmart watch, smart glasses, or the like.

In some embodiments, the cell phone is a portable device that includesimage capture functionality, such as a digital camera, and hasconnectivity to at least one network such as a cellular telephonenetwork and/or the Internet. The cell phone may be a mobile telephone(cellular or otherwise), PDA, or other portable device. The camera ofthe cell phone captures video or frame data representative of a periodof time in a scene. The video is a series of frames and associatedtiming information. The term video is used to refer to both a videodisplay, i.e. the display of streamed frames, and also to video data,i.e. the digital information which may be stored or used to produce avideo display. Examples of videos include files in MP4 or QuickTimeformat. The frame may be a single complete still image in a sequence ofimages that creates the illusion of motion within a scene when displayedin rapid succession (streamed). The frame may be used to refer todigital information representative of the single still image. The frameswithin a video may be associated with a brief period of time equal to1/fps. The term ‘fps’ is an abbreviation for frames per second.Hereinafter, the term “still image,” “image,” and “frame” may beinterchangeably used. Examples of frames include files in JointPhotographic Experts Group (JPEG), Tagged Image File Format (TIFF),Graphics Interchange Format (GIF), Windows bitmap (BMP), or PortableNetwork Graphics (PNG) formats.

The image capture device 112 such as a cell phone may include amicroprocessor, a communication unit, random access memory (RAM),non-volatile memory, a display, one or more auxiliary input/output (I/O)devices, a data port, a keyboard, a speaker, a microphone, a short-rangewireless communications subsystem, a rechargeable battery, a batteryinterface, and possibly other components. The image capture device 112may include fewer, additional, or different features, which may bearranged and may operate in the manner shown or in a different manner.The cell phone is configured to be a two-way communication device havingvoice and data communication capabilities. The cell phone maycommunicate over wireless networks, including wireless telecommunicationnetworks, wireless data networks, combined voice and data networks, orother types of wireless networks. The networks can include one or morelocal, regional, national, or global networks. The networks can includeone or more cellular networks. In some implementations, wirelessnetworks utilize one or more communication protocol standards, forexample, 3G, 4G, GSM, CDMA, GPRS, EDGE, LTE or other.

In one embodiment, the image capture device 112 (such as a cell phone)may send and receive captured image data of the one or more objects toan external device for processing over the wireless network, forexample, after wireless network registration or activation procedureshave been completed. The wireless network registration or activationprocedures for the image capture device 112 may vary based on the typeof network or networks with which the image capture device 112 operates.Wireless network access can be associated with a subscriber or user ofthe image capture device 112. For example, subscribed services mayinclude web browsing, e-mail, voice mail, Short Message Service (SMS),Multimedia Messaging Services (MMS), or others.

In another embodiment, the image capture device 112 is configured tosend captured images to remote facilities such as the server 104 and/orthe administrative computer 108. In one implementation, the imagecapture device 112 may include a data port such as a serial port, aparallel port, or another type of connection port. In someimplementations, the data port is a Universal Serial Bus (USB) port orother that includes data lines for data (image data) transfer to theserver 104 and/or the administrative computer 108. The image capturedevice 112 may be manually synchronized with the server 104 and/or theadministrative computer 108, for example, by connecting the imagecapture device 112 through the data port that couples the image capturedevice 112 to the data port of the server 104, the administrativecomputer 108, or other device. In another implementation, the imagecapture device 112 may also include short-range communications systemthat provides for communication between the image capture device 112 anddifferent systems or devices such as the server 104 and/or theadministrative computer 108, without the use of the wireless network.For example, the short-range communications system may include aninfrared or radio frequency device and associated circuits andcomponents for short-range communication. Examples of short-rangecommunication standards include standards developed by BLUETOOTH®, the802.11 family of standards developed by IEEE, Near Field Communication(NFC), and others.

In yet another embodiment, the image capture device 112 may not becapable of sending captured images of the one or more objects to theserver 104 and/or the administrative computer 108, and in such asituation, the image capture device 112 may transmit the captured imagesto a transmitting device. The transmitting device may be a devicecapable of transferring information to remote locations such as theserver 104 and/or the administrative computer 108. The transmittingdevice is capable of getting the information wirelessly or using a wiredconnection from the image capture device 112 for pre-processing, andtransmission to external devices wirelessly or using a wired connection.Examples of the transmitting device may include a wireless PDA, a webpad-like device communicating on a local wireless area network, a devicecommunicating using infrared or acoustic energy, etc.

The image capture device 112 may include image processing algorithmsand/or software's. The image processing algorithms and/or software's mayalso be stored in the memories of the server 104, the administrativecomputer 108, or other devices of the system 100 for pre-processing andprocessing the captured image data by the image capture device 112. Inone implementation, the image processing algorithms perform compression,artifact correction, noise reduction, color corrections, geometriccorrections, imager non-uniformity correction, etc., and various imageprocessing enhancement operations on the images captured by the cameraof the image capture device 112.

The image processing algorithms and/or software's may be implemented asa plurality of software objects residing on the image capture device112, the server 104, the administrative computer 108, or other devicesof the system 100. The image processing algorithms are numerical andsymbolic algorithms for the manipulation of images and video streamscaptured by the image capture device 112. The algorithms can beimplemented as software running on a processor, DSP processor, specialpurpose ASIC and/or FGPA's. The image processing algorithms can also bea mixture of custom developed algorithms and libraries. The imageprocessing algorithms can further be arranged in any logical sequence,with potential changes in the sequence of processing or parametersgoverning the processing determined by image type, computationalrequirements or outputs from other algorithms.

The image capture device 112 may also include machine learningtechniques that can be used to train image capture device 112 todiscriminate between features and to identify objects. The machinelearning techniques may also be stored in the memories of the server104, the administrative computer 108, or other devices of the system100. The image capture device 112 may be trained to identify objectsbelonging to a specific group by providing the image capture device 112with many training examples of objects belonging to the specific group.The image capture device 112 may be supplied with pre-made database withwhich to compare any new object that is later presented to the imagecapture device 112 during use.

The image capture device 112 may also include machine vision algorithmsthat perform, among other operations, digit recognition, printed andhandwritten text recognition, symbol, logo and watermark recognition,and general shape recognition. The machine vision algorithms may resideon a different system belonging to a different entity than the imageprocessing algorithms or the application software. The machine visionalgorithms, which are applied to identify an object in the digitalimage, may include computer vision algorithms such as image analysisalgorithms that may use a feature detector or a combination ofdetectors. For example, a texture detector and edge detector may beused. If both specific texture and specific edges are detected in a setof images, then an identification may be made. One example of an edgedetection method includes the Canny™ algorithm available in computervision libraries such as Intel™ OpenCV. Texture detectors may use knownalgorithms such as texture detection algorithms provided by Matlab™

The image capture device 112 may include a non-volatile memory thatincludes erasable persistent storage, for example, flash memory,battery-backed-up RAM, or other types of memory. The non-volatile memorystores instructions and data associated with an operating system of theimage capture device 112, programs (image processing algorithms and/orsoftware) that provide various types of functionality for the imagecapture device 112, and other types of information. The non-volatilememory may include a file system to facilitate storage of data items onthe image capture device 112. Data stored in the non-volatile memory orother computer-readable media on the image capture device 112 mayinclude user application data, image files captured, and other datagenerated by the user at the image capture device 112 or received andstored by the image capture device 112.

In the exemplary embodiment illustrated in FIG. 1, the administrativecomputer 108 and the image capture device 112 are shown as separatedevices, whereby the image capture device 112 captures an image andtransmits the image or processed image data to the administrativecomputer 108 for further communication with the server 104. Theadministrative computer 108 and the image capture device 112 can beconfigured as a single device, such as a mobile (or cellular) phone thatcan capture an image, process the image, and transmit the image or imagedata over a network to the server 104. For example, this component canbe configured as a personal computer, tablet computer, smart phone,cellular phone, smart watch, smart glasses, personal data assistant, orthe like. It is intended that the embodiments described herein can beconfigured to operate on the administrative computer 108 and imagecapture device 112 or a single component incorporating functionality ofboth.

The processor of the server 104, the administrative computer 108, orother devices of the system 100 may execute cryptographic systems thatprovide secure communications services between the user of the imagecapture device 104 and the server 104, the administrative computer 108,or other devices of the system 100.

The system 100 uses images or video sequences captured by the imagecapture device 112 of the one or more objects 110, and the server 104can decode the identity of the imaged object using the image recognitionsoftware, for example objects within a labeled product, a printed form,a page from a book or newspaper, a bill, a membership card, etc. Thissaves the user the time and effort of inputting the object identityand/or unique information pertaining to the object. The image capturedevice 112 captures images or video sequences, which may be processed onthe server 104, or processed by another device, and then transmitted andtransferred through a data network or networks to servers 104. Theservers 104 process the captured images using the algorithms, and thenuse the extracted information from the processed images for variousapplications such as assessing the value of objects 110 recognized inthe captured images for generating insurance plans of the objects 110.The servers 104 (or other connected entities) may then send informationback through the network 106 to the image capture device 112, or toother devices such as a personal computer.

In the illustrated embodiment, the system databases 101 having anon-transitory machine-readable media is configured to store one or morerecords of the objects 110. The system databases 101 also stores profileof a member identifier data 102 a associated with the user of the imagecapture device 112 (mobile device). The image capture device 112captures the image of the object 110. The server 104, the administrativecomputer 108, or other devices of the system 100 are configured toreceive from the image capture device 112 the digital image capturingthe object 110. The processor of the server 104, the administrativecomputer 108, or other devices of the system 100 execute an objectrecognition protocol to identify one or more image features of thedigital image and then determine an identification of the object 110based upon the one or more features of the digital image identified bythe executed object recognition protocol.

In one implementation, upon recognizing the object 110, the processor ofthe server 104, the administrative computer 108, or other devices of thesystem 100 generate an object profile of the object 110 based upon oneor more data records of the object stored in the system databases 101where each respective record contains data point corresponding to avaluation of the respective object. The object profile also storesmember identifier data associated with the user of the image capturedevice 112 where the member identifier data includes data indicating thecharacteristic of the member such as previous insurance history, socialsecurity profile, etc. The processor of the server 104, theadministrative computer 108, or other devices of the system 100 thendetermine a value of the data point based upon the valuation of therespective object and the characteristic of the member; and otherdetails such as different insurance plans for the object. The server 104transmits the determined information (such as different insurance plans)to the administrator computer 108 and an image capture device 112 b ofthe user. In one preferred embodiment, the administrator computer 108and an image capture device 112 b may receive the information in codedform, that may be scanned or accessed by entering a password. Forexample, upon scanning of the code, the code may return a URL that theuser's browser then moves to determine the details related to value andinsurance plans of the object.

FIG. 2 shows a flow diagram of an image-based object recognition process200 in an exemplary method for implementing machine vision and opticalrecognition for calculating and assessing value of a product, accordingto an exemplary embodiment.

At step 202, an image capture device captures a digital image. In anembodiment, for image capture, a user may utilize the image capturedevice, such as a camera. In another embodiment, the user may utilize acomputer, a mobile phone, a personal digital assistant, or other similarimage capture device equipped with a camera (such as a CCD or CMOSdigital camera). The user aligns the camera of the image capture devicewith an object of interest. The image capture process may then beinitiated by suitable means including the user pressing a button on thedevice or camera; by the software in the device automaticallyrecognizing that an image is to be acquired; by user voice command; orby any other appropriate means. The device captures a digital image ofthe object at which its lens is directed. This image is represented asthree separate 2-D matrices of pixels corresponding to the raw RGB (Red,Green, Blue) representation of the input image. For the purposes ofstandardizing the analytical processes in this embodiment, if the devicesupplies the image in other than RGB format, a transformation to RGB maybe accomplished. These analyses could be carried out in any standardcolor format, should the need arise.

The image capture device can either be a still image capture device or avideo image capture device. Also, the image capture device can operateunder the control of a processor to provide a constant stream ofcaptured image information. The image capture device may also beremotely controllable such that the camera can be aimed in a preferreddirection in a controlled fashion and/or to permit zoom capabilities orother selectable features such as exposure, focusing, or contrast to beused in response to remote signaling from, for example, the processor.In general, the image capture device is positioned and configured topermit capturing of images of an object featuring the entire object orpertinent portions thereof. In particular, the image capture device isoriented to permit capturing images of the object's entire body. Theimage can be a full front view, a full profile view, a perspective view,and so forth as desired. For a single object, numerous images may becaptured to represent various views or features of the object.

The image capture device may include a buffer that can be a separatedevice or part of the memory. The buffer is coupled to an imageprocessor of the image capture device, which can analyze the image inthe buffer to adjust picture quality characteristics, such as speed,exposure, and the like before capturing the image in the memory. It mayalso be required to pre-focus the camera to assist in obtainingrecognizable images. It can be accomplished by having the focusing lensof the camera always drive to a fixed focus point before attempting totake a picture or to drive the focusing lens to pre-focus the imageusing generalized objects in the image.

If the image processor is physically separate from the image capturedevice, then user captured images can be transmitted from the imagecapture device to the image processor using a conventional digitalnetwork or wireless network means. If the image is compressed in amanner that introduces compression artifacts into the reconstructedimage, these artifacts may be partially removed by, for example,applying a conventional filter to the reconstructed image prior toadditional processing. The image processor may also reduce the imagedata stored in an internal memory to the ones multiplied by apredetermined factor and stores the reduced image data in the internalmemory. For example, the image data is reduced to the ones with lesserpixels that are a quarter in size in the horizontal and verticaldirection. The image processor can reduce the image data by thinning ofpixels.

In a preferred embodiment, it may be desired to store only an imagerepresenting object, for example, have the complete object on a plain,indistinct background. Some images may contain an image that is notseparable from background objects. Therefore, it may be preferred toisolate the desired object in the picture to better define an imageobject for storage. It may be accomplished by digitally highlightingonly the desired area of a photograph, cropping this highlighted area toremove the background as much as possible, and storing only thehighlighted area containing the desired image object or deriving asignature defining the highlighted image region.

At optional step 203, a record of the object captured in the image islocated. In an embodiment, the object captured in the image may bepreviously insured by the user. The user may select the record of theobject from user profile comprising a list of insured objects, and senda request (comprising the record and captured image of the product) to aserver to determine an updated value and updated insurance policy plansfor the object. A user may desire to use the system to update storeddata, and the system may capture a new image of the object to determinethat it is still in the possession of the user or determine whether itis still in the same condition as when it was previously captured oridentified.

At step 204, a processor of the image capture unit processes the imagecaptured to recognize the objects within the image. The image may be asingle video image frame or a series of sequential monocular or stereoimage frames. In another embodiment, the image capture unit may transmitthe digital image to a separate device that comprises a processor forprocessing the image captured to recognize the objects within the image.In yet another embodiment, the image capture unit may transmit to aserver or an administrator computer that comprises a processor forprocessing the image captured to recognize the objects within the image.

In one embodiment, the server is linked to the mobile device through theinternet, and the server receives the uploaded image. Initially, theimage is input in the format of digital image data for processing by theserver. The mobile device (or other device in the process) canpre-process the image to generate a pre-processed image. The image mayalso be normalized with respect to size and orientation. For example, ifproperties of the received image vary from the preferred properties, theimage may be transformed to have those properties. As a further example,the actual resolution of the received image may be different thanindicated in their respective file properties. In such a case, thereceived image would be processed to indicate their correct resolutions.

The processor may then determine if a token of an object can be detectedin the image. The processor detects tokens from a group consisting ofedges, contours, interest points, parts, and combinations thereof. Ifthe token can be detected, the token is detected and stored in thememory. The processor further determines if a geometric configurationcan be captured in the image. The geometric configuration of the tokenscan be captured if a plurality of portions of the shape of the objectcan be described. If a geometric configuration can be captured, thegeometric configuration is captured and stored in the memory. Thegeometric configuration of the tokens may be assigned to a quantizationbin. The processor selects the quantization bin. The geometricconfiguration of the tokens are then quantized. The object issubsequently recognized by utilizing the bins as individual measurableheuristic properties of the object. The features are utilized to buildobject classifiers with a machine learning system. The processor thendetermines if an object can be detected. The object is recognized byutilizing a plurality of quantization bins as features. If the objectcan be detected, the details of the object may be stored in the memory.

In another embodiment, the digital image data may include an image of anobject class, such as a car. If the image includes color information(for example, the object is a red color car), a color detection processmay be used by the processor to increase the reliability of the objectdetection. The color detection process may be based on a look-up tablestored in the memory that contains possible colors. The confidencevalues, which indicate the reliability of the object detection and aregenerated during bunch graph matching or by a neural network, may beincreased for colored image regions.

In yet another embodiment, the processor may use a learning algorithmbased on a training data set that contains many examples of objects torecognize the given object in the digital image. In one example, thelearning algorithm is based on neural network approaches. In a learningphase based on a training data set, the learning algorithm constructs aclassification function which can label patches in the image as eitherobject or not. The learning algorithms may be designed and implementedusing a variety of tools, CPUs, GPUs, and dedicated hardware platformsfor recognition of objects within the image. Example softwareenvironments for machine learning design are Matlab (and its open sourceequivalent, Octave) and the combination of Python and Scipy.

In yet another embodiment, the processor may use a scanning process toenumerate all possible patches within the image. The image can containmany independent patches. Every unique location and scale in the imagecan yield an independent patch. The classification function is runagainst all such patches to detect the possible presence of an instanceof the object in the patch. When the processor, through one or moreclassification functions, detects an object, the processor records thelocation and scale of the patch for later output, for example, reportingto an end-user of the administrative computer.

In yet another embodiment, the input image including a target object forrecognition is entered in a feature extractor unit of the system, thenthe feature extractor extracts a feature from the input image and sendsthe feature to the processor. The processor sequentially searches modelsfrom a learning model memory. The similarity measure between the inputimage feature and the learning feature is calculated. The processorrepeats the procedure of similarity measure calculation and output byusing the model of the learning model memory. When the similaritymeasure is the maximum, the processor determines to which type of modelsthe target object for recognition included in the input image belongs.The input image is overlapped with various learning images, and theoverlapping degree is judged by using the similarity measure, andtherefore the object matching the learning image can be recognized.

In yet another embodiment, the image may be divided into windows by theprocessor which preferably overlap each other. The image data within theindividual windows are evaluated independently of the data of otherwindows. The window data is evaluated with respect to data stored in thememory of multiple feature sets representative of the object, onefeature set at a time, to generate individual scores for the windows asto the likelihood that at least a portion of the object is present inthe window. All of the windows of the image are evaluated with respectto the first feature set but only those windows having the highestscores as a result of this first round of evaluation, such as those overa preset level, are then evaluated with respect to the second featureset. Any subsequent evaluation with respect a third or more feature setsalso process only data of windows having the highest score from theimmediately preceding round of evaluation. As part of the individualwindow evaluations, a score results of from the evaluation of the imagedata with respect to the feature set data. Also as part of theindividual window evaluations, relative rotation between the windowimage and that of the stored feature set is preferably performed. Thisenables detection of the object over a range of rotations with respectto the image frame.

At step 206, the processor determines object location. The recognizedobject location is determined by the processor based on geographicalcoordinates of the location where the image was captured by the imagecapture device that captures the object. The geographical coordinatescan be generated by the image capture device and may be associated withthe image data.

At step 208, the processor compares the object recognized against asystem database of objects. The mobile device uploads a target image tobe compared in the one or more system databases through a networkconnection. The method of uploading the target image from the mobiledevice to the server is for illustrative purposes, and as such does notlimit the scope of the present invention. One with skill in the art willappreciate other methods of uploading the target image to the server canbe used, so long as the essential function of providing the target imageto the server is maintained.

In one embodiment, the processor compares the recognized object orobjects within the target image against database of objects stored inthe system databases. The system databases can store a database ofrecords containing information representing objects based on their pricein different locations, a plurality of reference images, and an objectindex. Each of the plurality of images and the objects stored in thesystem databases may be indexed and the indices of the plurality ofobjects may be organized in an object index. The processor can calculatea difference between the recognized object in the target image and anidentified most similar object. The processor performs a search of theobject index to find a most similar reference object stored to aprocessed target object. The processor is further configured to subtracta difference between the target object and the most similar referenceobject and encodes the difference between the target object and the mostsimilar reference object. In one example, the difference between thetarget object and the most similar reference object may be encoded usingentropy encoding. Entropy encoding is a lossless data compression schemethat measures the amount of similarity between two objects. In anotherexample, the processor resizes the most similar reference object to thesize of the target object before the difference between the targetobject and the most similar reference object is calculated.

In another embodiment, the processor may perform a function ofdetermining whether or not an object similar to the target object existswithin the system databases by matching a normalized feature region ofobjects stored in the system database to a normalized feature region ofthe target object. A feature point and a feature region may be extractedfrom the target image for the matching between the objects by theprocessor. The feature point refers to a point that contains a featureelement of an object contained in a corresponding image, and the featureregion refers to a region around the feature point containing thefeature of the object. A feature extraction technique is utilized by theprocessor in order to extract the feature point and the feature regionfrom the target image.

In yet another embodiment, an angle range can be established to identifymatching cells, for example, an intensity angle of each cell in thetarget image to detect matching objects and determine the degree ofsimilarity between a target object and a collection of objects. Forexample, if the intensity angle for the corresponding cell in acandidate object of the collection of objects is within the specifiedangle range, the two cells may be considered to be matching cells. Aminimum threshold for the number of cells that must match may bespecified in order to indicate matching objects, for example, 14 out of15 matching cells may be required. In one example, finding similarobjects involves calculating a similarity score for each object bysumming the differences between the corresponding cells of the targetobject and each candidate object in the collection of objects.

At step 210, the processor can determine value and insurability of theobject. The processor can appraise the value of the recognized object.The processor can execute an initial appraisal of the object or may beused to reappraise the object to validate proper insurance coverage forthe object. The object may include, for example, a painting, a diamondring, a necklace, a vehicle, a watch, a vase, furniture, memorabilia,and/or any other object of value. As used herein, the term “appraise” or“appraisal” refers to establishing a value, such as a monetary value, ofthe object based on characteristics of the object by the processor.

The processor evaluates multiple factors related to the object todetermine the price of insuring of the object. The multiple factors mayinclude selling price of the object in the market, cost ofreconstructing the object incase of damage of the object, age of theobject, and other market factors that may vary depending on the type ofthe object. In one example, each factor is evaluated simultaneously withall other parameters. The processor may utilize system databases thatstore data associated with product to calculate the insurance value ofthe product. The system databases may include rating information thatinclude both consumer information (e.g., information obtained fromusers) and object information. Additionally, the one or more systemdatabases used by insurance product applications can be separated fromone or more dedicated rating information system databases. The systemdatabases used, and the system databases management systems used toallow access to and control of the system databases can be based on avariety of system databases schemes, but are typically relational innature, for example structured query language (SQL) system databases andsystem databases management systems.

The processor executes rating module to determine insurance productrates. The rating module can be implemented in whole or in part assoftware component objects (e.g., server component objects) and performthe insurance product rate calculations using rating information.Because the rating modules are implemented as software componentobjects, the various communication product links between rating modulesand the server can be implemented as using in-process, cross-process, orremote communication. Accordingly, a variety of different rating modulescan be implemented, yet all can operate in conjunction with the server.For example, the rating module, can be an in-process or cross-processcomponent object executing on the same computer system as the server,while the rating module is a component object executing on a computersystem separate from the server but located in the same facility.

When presented with the request to calculate a product rate, forexample, when the user of mobile device that captured the object hasrequested a insurance product rate, the server provides some informationrequested by rating module. This information may include ratingidentification number, which can be unique to the particular productrate being requested, which is then used by one or more of the ratingmodules to access rating information from the internal and externaldatabases. Alternately, the server can provide all of the informationneeded to perform the rate calculation to any of the invoked ratingmodules, thereby obviating the need for the rating module to have acommunication link with the internal or external databases. Similarly,once a product rate is calculated by a particular rating module for theobject, it is returned to the server, or written to the internaldatabase, for later retrieval by the server.

In an embodiment, rating information database may be stored in aseparate database and can itself implement one or more softwarecomponent objects, and thus one or more of the rating modules cancommunicate with the rating information database using the previouslydescribed software component object communication schemes. The ratinginformation database may contain information to perform a ratecalculation. This information is stored as database records and caninclude stored procedures for calculating rates, insurance rate formulaestored as logical and algebraic expressions, one or more tables ofrating factors, miscellaneous numeric values, and any other informationused to calculate insurance rates for the object. Additionally, a ratingmodule may use little or no information provided by rating informationdatabase. For example, if the rating module used is associated with alegacy rating calculation application, all of the information needed toperform the calculation could be supplied to the rating module from theserver.

At step 212, the processor then stores the determined value andinsurability of object in the system databases. At step 214, theprocessor transmits information (e.g., determined value and insurabilityof object) to a mobile device or computer of the user. The determinedvalue and insurability of object may be in an encrypted message and mayrequire to be decrypted into original text which is then displayed onthe mobile device or the computing device of the user. The applicationinstalled on the mobile device or the computing device of the user mayautomatically compare values of the object or the product identified inthe image with other vendors, and displays it to the user. At step 216,the mobile device or computing device of the user displays the value andinsurability information to the user. FIG. 3 shows an example where auser captures an image of a watch 302 to be insured on a mobile device300, according to an exemplary embodiment. In the illustratedembodiment, the user captures an image of the watch 302 from a camera ofthe mobile device 300. The user transmits the captured image of thewatch 302 to a server to recognize the watch 302, and determine thevalue and insurability of the watch 302. The mobile device 300 of theuser may have image processing algorithms that perform compression,artifact correction, noise reduction, color corrections, geometriccorrections, imager non-uniformity correction operations on the capturedimage prior to sending the image of the watch 302 to the server.

The server processes the contents in the image received from the mobiledevice 300 to recognize objects that may have been captured in the imagein order to determine the value and insurability of the objects. In thepresent example, only a single watch 302 is captured in the image. Theserver may include machine vision algorithms which are applied torecognize the details of the watch 302 captured in the image. Themachine vision algorithms may include image analysis techniques that mayuse a feature detector or a combination of detectors such as texturedetector and edge detector to recognize the watch 302. In anotherembodiment, the mobile device 300 may include machine vision algorithmsthat may include image analysis techniques to recognize the watch 302.In yet another embodiment, the mobile device 300 may transmit the imageto an administrator computer that comprises a processor for processingthe image captured to recognize the watch 302 within the image. Forexample, the mobile device may determine that a circular object hasfeatures resembling a watch face and further detect features todetermine the particular watch brand, model, and value.

The processor of the server may also compare the watch 302 in thecaptured image against database of objects stored in the server. Theprocessor may determine whether or not an object similar to the watch302 in captured image exists within the server by matching a normalizedfeature region of objects stored in the server to a normalized featureregion of the watch 302 in the captured image. A feature point and afeature region may be extracted by the processor from the watch 302 inthe captured image for matching with the objects in the server. Thefeature point refers to a point that contains a feature element of thewatch 302 contained in a captured image, and the feature region refersto a region around the feature point containing the feature of the watch302. The processor of the server after recognizing the watch 302 withinthe image being Rolex watch, may then generate an object profile of thewatch 302 based upon one or more data records of the Rolex watch. Eachrespective record contains data point corresponding to a valuation ofthe respective watch 302. The data records may correspond to a modelnumber of the watch 302, an year of make of the watch 302, selling priceof the watch 302 in the market, cost of reconstructing the watch 302 incase of damage of the watch, etc. The object profile of the watch 302may also store user identifier data associated with the user of themobile device 300. The user identifier data includes data indicating thecharacteristic of the user such as previous insurance history, socialsecurity profile, total insurance money pool, etc.

The processor of the server then determine a value of the watch 302based upon the evaluation of the data points of the respective watch 302and the characteristic of the user. Other details such as differentinsurance plans for the watch 302 available in the market may be takenas an input in order to determine the value and insurance plan of thewatch 302. The server transmits the determined information such as valueof the watch 302 and insurance plan options for the watch 302 to themobile device 300 of the user. The determined information is displayedon the screen of the mobile device 300 of the user. In one embodiment,the mobile device 300 may receive the information in coded form, thatmay be scanned or accessed by entering a password. For example, uponscanning of the code, the code may return a URL that the user's browserthen moves to determine the details related to value and insurance plansof the watch 302.

In the illustrated example, the value ($18,250) of the watch 302determined by the server is displayed on the mobile device 300. The useris further provided an option to insure the watch. When the user selects“YES” option, the insurance plans available for the watch may then bedisplayed to the user. On accepting the insurance plan, the watch isinsured and the money for insurance may be deducted from the userinsurance pool. In another embodiment, the user may be requested to paythe money to buy the insurance. The selection is then transmitted to theserver for processing of that request.

The server may also be programmed to offer various insurance services tothe user of mobile device 300 based on data gathered from images and/orvideo captured by the camera of the mobile device 300 and the dataavailable in internal and external system databases. For example, theuser may want a coverage offered in property insurance to insure theentire property and one or more products (including the watch 302)within the property against damage. The user using the mobile device 300or any suitable movable device having a camera may perform an inspectionof the property by capturing images and/or video of the productsincluding the watch 302 within the property. The user transmit thecaptured images and/or video to the server as described above, where theserver recognizes the products such as the watch 302 within the imagesand/or video by using suitable object recognition techniques. The serverafter recognition of the objects such as the watch 302, may determine avalue and insurance plan for each object recognized and transmit thedetermined data (value and insurance plan corresponding to each objectsuch as the watch 302) to the mobile device 300. The user may beprovided with an option to purchase an insurance plan for the respectiveobjects.

Any suitable movable device may operate independently of user and can beremotely controlled using an inspection control station or a radiocontroller. The movable device can be propelled by wheels, treads,belts, chains, caterpillar tracks, legs, feet, magnetic/electric fields,air flow, or any other contact or non-contact propulsion, motion,positioning technique. The video and other images can be recordedonboard the movable device for subsequent download to another computer,or transmitted wirelessly to the server in real time during theinspection where the server performs recognition of objects captured inthe videos and/or images.

In one example, the image capture and recognition system can be usefulwhen a user desires to scan a dwelling for insurable objects. The usercan use the mobile device to capture images of objects throughout one ormore rooms, and the server will identify which objects may be insurableand the cost for insuring those objects. This process may be implementedin a dynamic nature, whereby the camera of the mobile device pans acrossan area and continuously captures images and identifies insurableobjects, as opposed to requiring the user to capture a picture or selectitems for consideration.

FIG. 4 shows an example where a user captures an image of a diamondobject 402 to be insured on a mobile device 400, according to anexemplary embodiment. In the illustrated embodiment, the user capturesan image of the diamond object 402 from a camera of the mobile device400. The diamond object 402 captured in the image is previously insuredby the user. The user select a record of the diamond object 402 fromuser profile comprising a list of previously insured objects of theuser, and send a request to a server (along with the record and thecaptured image) to determine an updated value of the diamond object 402and updated insurance policy plans based on the updated value of thediamond object 402. The mobile device 400 of the user may have imageprocessing algorithms that perform compression, artifact correction,noise reduction, color corrections, geometric corrections, imagernon-uniformity correction operations on the captured image prior tosending the image of the diamond object 402 to the server.

The processor of the server processes the image received from the mobiledevice 400 to recognize the diamond object 402 captured in the image todetermine the updated value and insurability of the diamond object 402.In one embodiment, the server may include machine vision algorithmswhich are applied to recognize the diamond object 402 captured in theimage. The machine vision algorithms may include image analysistechniques that may use a feature detector or a combination of detectorssuch as texture detector and edge detector to identify the diamondobject 402. In another embodiment, the processor of the server receivethe record from the user regarding a previous insurance policy detailsof the diamond object 402. The processor may compare the diamond object402 in the captured image with an original image of diamond objectstored in the record. The processor determines the differences betweenthe original image of the diamond object and the diamond object 402 inthe captured image, and uses the differences as one of the inputs inorder to calculate the update value. For example, the processor maydetermine if there has been any breakage or any deterioration in thediamond object 402 in comparison the previously stored data history ofthe diamond object 402.

The processor further generate a new object profile of the diamondobject 402 based upon one or more new data records of the diamond object402. Each respective record contains data point corresponding to avaluation of the diamond object 402. The new object profile of thediamond object 402 may also store user identifier data associated withthe user of the mobile device 400. The user identifier data includesdata indicating the characteristic of the user such as previousinsurance policy of the diamond object 402, social security profile,total insurance money pool, etc.

The processor of the server then determine the updated value of thediamond object 402 based upon the evaluation of the of the data pointsof the respective diamond object 402 and the characteristic of the user.The server transmits the determined information such as the updatedvalue of the diamond object 402 and based on the updated value, theupdated insurance plan options for the diamond object 402 to the mobiledevice 400 of the user. The determined information is displayed on thescreen of the mobile device 400 of the user.

FIG. 5 shows an example where a user captures an image of a car to beinsured on a mobile device 500, according to an exemplary embodiment. Inthe illustrated embodiment, the user captures an image of a car from acamera of the mobile device 500. The user may transmit the capturedimage of the car to a server to recognize the car, and determine thevalue and insurability of the car. The mobile device 500 of the user mayhave image processing algorithms that perform compression, artifactcorrection, noise reduction, color corrections, geometric corrections,imager non-uniformity correction operations on the captured image priorto sending the image of the car to the server.

The server processes the image received from the mobile device 500 torecognize the car captured in the image. The server may include machinevision algorithms which are applied to recognize the car captured in theimage. The machine vision algorithms may include image analysistechniques that may use a feature detector or a combination of detectorssuch as texture detector and edge detector to identify the car. Inanother embodiment, the mobile device 500 may include machine visionalgorithms that may include image analysis techniques to identify thecar. In yet another embodiment, the mobile device 500 may transmit theimage to an administrator computer that comprises a processor forprocessing the image captured to recognize the car within the image. Theprocessor of the server may also compare the car in the captured imageagainst database of objects stored in the server. The processor maydetermine whether or not an object similar to the car in captured imageexists within the server by matching a normalized feature region ofobjects stored in the server to a normalized feature region of the carin the captured image.

The processor of the server after recognizing the car within the image,locates one or more same cars (including both new and old models)available for sale within a proximal distance from location of the user.The server may obtain location information of the user's mobile device500 or the server may obtain the physical address of the user from thedatabase and used as a reference location. The server may then generatean object profile of the cars within the proximal distance from thereference location of the user based upon one or more data records ofthe cars. Each respective record of the cars contains data pointcorresponding to a valuation of the respective cars. The data recordsmay correspond to model number of the cars, year of make of the cars,brand of the cars, mileage of the cars, selling price of the cars in themarket, cost of reconstructing the cars incase of damage of the cars,etc. The object profile of the cars may also store user identifier dataassociated with the user of the mobile device 500. The user identifierdata includes data indicating the characteristic of the user such asprevious insurance history, social security profile, total insurancemoney pool, etc.

The processor of the server then determine a value of each car 502 basedupon the evaluation of the data points of the respective car and thecharacteristic of the user. Other details such as different insuranceplans for the car 502 available in the market may be taken as an inputin order to determine the value and insurance plan of the car 502. Theserver transmits the determined information such as year of make of thecar 502, model of the car 502, average miles per gallon of the car 502,brand name of the car 502, class type of the car 502, value of the car502, financing plan options, and insurance plan options for the car 502to the mobile device 500 of the user. The server can also identifywebsites or dealers that are selling a similar car and present a link(e.g., “Find . . . 1 Located”) on the user interface of the mobiledevice 500. The determined information is displayed on the screen of themobile device 500 of the user. The mobile device 500 may receive theinformation in coded form, that may be scanned or accessed by entering apassword. For example, upon scanning of the code, the code may return aURL that the user's browser then moves to determine the details relatedto value and insurance plans of the car 502.

The foregoing method descriptions and the process flow diagrams areprovided merely as illustrative examples and are not intended to requireor imply that the steps of the various embodiments must be performed inthe order presented. As will be appreciated by one of skill in the artthe steps in the foregoing embodiments may be performed in any order.Words such as “then,” “next,” etc. are not intended to limit the orderof the steps; these words are simply used to guide the reader throughthe description of the methods. Although process flow diagrams maydescribe the operations as a sequential process, many of the operationscan be performed in parallel or concurrently. In addition, the order ofthe operations may be re-arranged. A process may correspond to a method,a function, a procedure, a subroutine, a subprogram, etc. When a processcorresponds to a function, its termination may correspond to a return ofthe function to the calling function or the main function.

The various illustrative logical blocks, modules, circuits, andalgorithm steps described in connection with the embodiments disclosedherein may be implemented as electronic hardware, computer software, orcombinations of both. To clearly illustrate this interchangeability ofhardware and software, various illustrative components, blocks, modules,circuits, and steps have been described above generally in terms oftheir functionality. Whether such functionality is implemented ashardware or software depends upon the particular application and designconstraints imposed on the overall system. Skilled artisans mayimplement the described functionality in varying ways for eachparticular application, but such implementation decisions should not beinterpreted as causing a departure from the scope of the presentinvention.

Embodiments implemented in computer software may be implemented insoftware, firmware, middleware, microcode, hardware descriptionlanguages, or any combination thereof. A code segment ormachine-executable instructions may represent a procedure, a function, asubprogram, a program, a routine, a subroutine, a module, a softwarepackage, a class, or any combination of instructions, data structures,or program statements. A code segment may be coupled to another codesegment or a hardware circuit by passing and/or receiving information,data, arguments, parameters, or memory contents. Information, arguments,parameters, data, etc. may be passed, forwarded, or transmitted via anysuitable means including memory sharing, message passing, token passing,network transmission, etc.

The actual software code or specialized control hardware used toimplement these systems and methods is not limiting of the invention.Thus, the operation and behavior of the systems and methods weredescribed without reference to the specific software code beingunderstood that software and control hardware can be designed toimplement the systems and methods based on the description herein.

When implemented in software, the functions may be stored as one or moreinstructions or code on a non-transitory computer-readable orprocessor-readable storage medium. The steps of a method or algorithmdisclosed herein may be embodied in a processor-executable softwaremodule, which may reside on a computer-readable or processor-readablestorage medium. A non-transitory computer-readable or processor-readablemedia includes both computer storage media and tangible storage mediathat facilitate transfer of a computer program from one place toanother. A non-transitory processor-readable storage media may be anyavailable media that may be accessed by a computer. By way of example,and not limitation, such non-transitory processor-readable media maycomprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage,magnetic disk storage or other magnetic storage devices, or any othertangible storage medium that may be used to store desired program codein the form of instructions or data structures and that may be accessedby a computer or processor. Disk and disc, as used herein, includecompact disc (CD), laser disc, optical disc, digital versatile disc(DVD), floppy disk, and Blu-ray disc where disks usually reproduce datamagnetically, while discs reproduce data optically with lasers.Combinations of the above should also be included within the scope ofcomputer-readable media. Additionally, the operations of a method oralgorithm may reside as one or any combination or set of codes and/orinstructions on a non-transitory processor-readable medium and/orcomputer-readable medium, which may be incorporated into a computerprogram product.

What is claimed is:
 1. A method comprising: receiving, by a server, froman electronic device operated by a user, a digital image of an object;determining by the server in a database, a user record comprising anobject profile of the object containing a previously stored value of theobject; executing, by the server, a machine learning algorithm todetermine one or more features of the object in the digital image,wherein the machine learning algorithm is trained based on a trainingdataset containing a collection of objects; determining, by the server,location data of a place where the digital image was captured;generating, by the server, one or more new data records of the object,each respective new data record containing at least one new data pointcorresponding to a valuation of the object; generating, by the server, anew object profile of the object based upon the one or more new datarecords of the object; determining, by the server, an updated value ofthe object based on the new object profile and the location data; andtransmitting, by the server to the electronic device, the updated valueof the object, and the new object profile.
 2. The method according toclaim 1, further comprising displaying, by the server on the electronicdevice, the updated value of the object, and the new object profile. 3.The method according to claim 1, further comprising executing, by theserver, image processing algorithms on the digital image to performcolor and geometric corrections on the digital image.
 4. The methodaccording to claim 1, wherein the electronic device is a mobile deviceof the user.
 5. The method according to claim 1, wherein the machinelearning algorithm executes a classification function to label patchesin the digital image to determine the one or more features of theobject.
 6. The method according to claim 1, wherein the object profilefurther comprises previously captured image of the object.
 7. The methodaccording to claim 6, further comprising determining, by the server,breakage on the object by comparing the digital image against thepreviously captured image of the object.
 8. A system comprising: aserver configured to: receive from an electronic device a digital imageof an object; identify a user record comprising an object profile of theobject containing a previously stored value of the object; execute amachine learning algorithm to determine one or more features of theobject in the digital image, wherein the machine learning algorithm istrained based on a training dataset containing a collection of objects;determine location data of a place where the digital image was captured;generate one or more new data records of the object, each respective newdata record containing at least one new data point corresponding to avaluation of the object; generate a new object profile of the objectbased upon the one or more new data records of the object; determine anupdated value of the object based on the new object profile and thelocation data; and transmit to the electronic device, the updated valueof the object and the new object profile.
 9. The system according toclaim 8, wherein the server is further configured to display, on theelectronic device, the updated value of the object and the new objectprofile.
 10. The system according to claim 8, wherein the server isfurther configured to execute image processing algorithms on the digitalimage to perform color and geometric corrections on the digital image.11. The system according to claim 8, wherein the object profile furthercomprises previously captured image of the object.
 12. The systemaccording to claim 11, wherein the server is further configured todetermine breakage on the object by comparing the digital image againstthe previously captured image of the object.
 13. A computer-implementedmethod comprising: receiving, by a server, from a mobile device operatedby a user, a digital image record containing a digital image capturing afirst object; determining, by the server, an object location of thefirst object based on geographical location coordinates associated withthe digital image captured by the mobile device and contained within thedigital image record; executing by the server, an object recognitionprotocol to identify one or more image features of the digital image;determining, by the server, an identification of the first object basedupon the one or more image features of the digital image identified bythe object recognition protocol; identifying, by the server, a secondobject within a proximal distance of the object location by comparingthe first object against a database comprising an object index ofrecords containing information representing a plurality of objects basedon their value in different locations, wherein the object index includesa record of the second object; determining, by the server, a scorebetween the first object and the second object by summing differencesbetween corresponding cells of the first object and the second object;determining, by the server, that the score satisfies a threshold for anumber of cells matching the corresponding cells of the first object andthe second object; determining, by the server, a value of the firstobject based on a value of the second object and the score satisfyingthe threshold; and transmitting, by the server to the mobile device, thevalue of the first object.
 14. The method according to claim 13, furthercomprising displaying, by the server on the mobile device the value ofthe object.
 15. The method according to claim 13, further comprisingexecuting, by the server, image processing algorithms on the digitalimage to perform color and geometric corrections on the digital image.16. The method according to claim 13, further comprising: determining,by the server, whether there are colored image regions within thedigital image; and upon determining presence of the colored imageregions within the digital image, executing, by the server, a colordetection process to identify the one or more image features of thedigital image, the color detection process utilizing a look up tablecontaining multiple colors stored in a memory.